8장 데이터베이스 서버 준비하기


RDS

AWS에서는 여러 형태의 데이터 베이스 서버를 제공한다. 그 중 관계형 데이터 베이스를 지원하는 RDS(Amazon Relational Database Service)를 알아보자.

EC2로 생성한 서버에 MySQL등의 RDB를 설치하여 사용할 수도 있지만, 몇가지 문제가 있다.

이러한 문제들을 매니지드 서비스인 RDS를 해결해준다.
Attachments/Picture/Pasted image 20231207204015.png

매니지드 서비스

RDS와 같이 작동하는 서버나 OS를 의식하지 않고 필요한 서비스를 구축할 수 있는 시스템을 AWS에서는 매니지드 서비스라고 부른다.

RDS 시스템

RDS 시스템은 크게 4개의 요소로 구성된다.

데이터베이스 서버 생성 흐름

  1. 파라미터 그룹 생성
  2. 옵션 그룹 생성
  3. 서브넷 그룹 생성
  4. 데이터베이스 생성

파라미터 그룹 생성

파라미터 그룹은 MySQL 이 제공하는 데이터베이스 설정을 수행하는 영역이다.

기본 파라미터 그룹이 있지만, 변경할 수가 없으므로 새로 생성해서 데이터베이스에 적용한다.

RDS -> 파라미터 그룹 -> 생성
Attachments/Picture/Pasted image 20231207205625.png|500

옵션 그룹 생성

RDS와 관련된 추가 설정 항목

파라미터 그룹과 마찬가지로 기본 옵션 그룹 있지만, 설정 항목 변경할 수 없으니까 새로운 옵션 그룹 생성해서 적용해준다.

RDS -> 옵션 그룹 -> 생성
Attachments/Picture/Pasted image 20231207205925.png

서브넷 그룹 생성

서브넷 그룹은 서브넷을 2개 이상 포함한 그룹이다. ( 그것이 그룹이니까 ㅋㅋ)
EC2를 생성할 때는 서브넷을 직접 지정했는데, RDS에서는 어떤 서브넷에 생성될지는 AWS가 정한다.
RDS는 멀티 AZ라는 기능으로 자동으로 여러 가용 영역에 DB 작성할 수 있다.
Attachments/Picture/Pasted image 20231207210502.png|500

public subnet은 외부 공개되므로 데이터베이스를 public subnet에 위치시키면 보안상 문제가 발생할 가능성이 있다. 그래서 되도록 private subnet에 추가한다.

데이터 베이스 생성

RDS -> 데이터베이스 -> 생성

  1. 데이터베이스 생성 방법 선택
    항목을 수동설정하는 표준생성 선택
  2. 엔진 옵션
  3. 템플릿
    Attachments/Picture/Pasted image 20231207211931.png|500
    선택 템플릿에 따라서 하위 옵션을 일부 자동 선택해주거나 기능이 제한된다.
    프리티어의 경우 다중 AZ를 선택할 수 없다.
    하지만, 지금은 연습이기 때문에 프리티어를 선택해준다.
  4. 설정
    Attachments/Picture/Pasted image 20231207211508.png|500
    마스터 사용자의 이름과 마스터 암호 설정
  5. DB 인스턴스 클래스
    프리티어를 선택하여서 t2.micro를 선택했다.
  6. 스토리지
    Attachments/Picture/Pasted image 20231207211720.png|500
    스토리지 자동 조정을 활성화하면 최대 스토리지 임계값을 설정하는 게 좋다.
  7. 연결
    Attachments/Picture/Pasted image 20231207212324.png|500
    VPC와 DB 서브넷 그룹을 지정해준다.
    데이터베이스 포트도 설정할 수 있다.
  8. 인증
    Attachments/Picture/Pasted image 20231207212517.png|500
    IAM 사용자로 데이터베이스 인증을 설정할 수 있다.
    -> IAM이 제공하는 안전한 사용자 관리를 이용할 수 있지만, DB 사용자를 외부에서 관리해야하는 불편함 존재.
  9. 추가 구성
    앞에서 만들어준 DB 파라미터 그룹과 옵션 그룹을 지정해준다.

RDS 작동확인

mysqladmin ping -u root -h database-1.c2pjf92fzjv5.ap-northeast-2.rds.amazonaws.com -p
Enter password:
mysqld is alive